Traditional web publishing involved the collaboration of programmers and webmasters working together to create and maintain a website. Programmers would hand code an encoding of the website using a computer language such as HTML. After the website was put into operation, specialized stakeholders called webmasters would be responsible for updating and maintaining the website throughout the course of the website's life. In the situation of a website with continually modified content such as an ecommerce site, blog posting site, or news site, the webmasters would need to modify the website on a daily basis. Modifying the encoding of the website by hand was a time consuming approach that was obsoleted for its inefficiency in the early days of the Internet.
Content Management Systems (CMS) are tools that facilitate the work of a webmaster in updating the content of a website. The CMS can be as simple as a tool that allows a blogger to easily post new updates to their website, or more complex tools that allow webmasters working on ecommerce sites to continually update the product offerings of a large enterprise. Many of these tools also allow a user to customize the look and feel of their website when it is first created, and may also allow the user to change the appearance of their website at a later date. The complexity of a CMS tends to vary inversely with the sophistication of the target user. For example, a CMS tool targeting bloggers with no programming skill whatsoever will provide a very simple interface and a shallow feature set; whereas a CMS tool targeting sophisticated webmasters, that are essentially programmers themselves, will provide a deep feature set with less hand-holding and more exposure to raw computer code.
In addition to CMS, other tools have recently grown in prominence that allow users to more fully customize a website. These tools allow a nonprogrammer stakeholder to specify not just the content of the website, or the look and feel of a pre-baked web template, but to specify the interactivity and substance of the entire website. At a certain point, these tools are no longer considered CMS tools and instead fall into the category of web design tools. Stakeholders that utilize these tools can be referred to as designers. Many of these web design tools provide a graphical interface to the designer such that the designer does not need to have any programming experience whatsoever to design the website. Once the design has been specified in the design tool, it can be exported from the tool in the form of an encoding of the design. For example, the encoding could be a combination of files in the form of HTML, JavaScript, and CSS along with any other programming languages that can be used to encode a website design. The encoding can then be used to render the website in a player such as a web browser.